iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0

這一篇我會以非常主觀的方式並根據我的觀察來描述一些 Data Team 常見的職位,然而每一間公司對每個職位的定義通常有非常大的差異,最準確的方式絕對是根據 Job Description (JD) 內容來看這個職位可能是什麼

而本篇是我認為這個職位在我心中,這個職位 Title 要具備什麼樣的能力,跟在資料團隊中他的分工應該請向於什麼,首先我們先列出比較常見的職位:

  • Data Scientist
  • Data Analyst
  • Machine Learning Engineer
  • Ai Engineer
  • Data Engineer
  • MLOps

如果一個職位包山包海什麼都會一點什麼都很精通,像是 Data 界的 Full-Stack Engineer,我會叫他 Applied Data Scientist,這類 DS 需要建 Pipeline,需要 Train Model, 需要做 SQL 工程師, 需要做 PM, 需要寫報告陪老闆聊天, 最好還會寫前端跟後端做後台系統或是自動化報表系統,相信有很多這一類的 DS,並且很自在

但如果你是這一類的 DS,但你現在其實覺得自己有點四不像,對論文也沒興趣,工程能力也不夠強,那我們就可以來討論一下可以嘗試往什麼方向去建立自己的 Career Path

Less Engineering

在這當中我認為 Data Scientist 和 Data Analyst 是相對較少 Engineering 的,另外實際上我發現很多的 Data Analyst 其實都具備 Data Scientist 的能力,真的有差異的可能只有一個博士學位 (?),而我對要走這一條 Career 的人的看法事實上也是乖乖去拿到博士學位吧 ...

在工作內容上我認為兩者都須具備"從 Data 中尋找 Insight",除了擁有基本的分析能力,也會看中視覺話和說故事的能力,最後是以的報告能帶來多少價值,另外也非常吃重 Domain Knowlege,像是 Marketing, Recommender, Platform Risk Control甚至醫療, 半導體製程都有自己的專業知識,除了分析能力專業知識也是很重要的一環

但在 Data Scientist 又更看重 Training 的能力,這裡不是指你套用了一個 XGBosst 然後去試試看不同的參數,這又分兩種

  1. Applied 面向的,你會根據資料特性提供不同的 ensembling, transorming 或是如 PCA Destruct 去組合更適合的 Model
  2. Research 面向的,你可能會去更改模型架構,做不同模型架構的研究

這裡的 Less Engineering 不是指不需要 Coding,而是 Coding 和 Coding 中的很多 Paradigm, 或是一些背後的工程化哲學思考不是這裡專研的重點

Engineering Coding

Machine Learning Engineer 和 AI Engineer 我認為都是非常 Developer 的職位,需要大量的 Coding,而其最主要的目標就是把 Researcher 的模型實現,並且優化,簡單的可能是重現一個論文或是包裝一個模型 Endpoint,甚至是去提供一個 Baseline Model 都是 MLE, AIE 的範疇,但我認為更需要專注的是如何去平行化或分案是的處理 Inference/ Training 的 Service,加速和優化模型都是這個角色需要注重的領域

而 MLE 和 AI 我認為 AI 會更注重於 Unstructured Data 像是 Image 和 Natural Language,而 MLE 則是其他像是 Recommender System, Time Series 或 Structure Data 的題目

當然實作 Pipeline 的 Data Engineer 很多時候也是仰賴大量的 Coding,包含 OLTP 到 OLAP 的資料庫,OLTP 資料庫分層,Sync Job (e.g. Flink Pipeline) 和 Async Job (e.g. Airflow Pipeline)的實作等等

Engineering System

而我們這 28 天提到的 MLOps 我會更推向他是一種 System 的角色,我會定義 System 是去組合許多現有的工具,而不是去建造一個新的工具,當然 System 的角色會需要 Coding 能力來幫工具添加 Pluging 或是 Adopt 成更是更團隊所需要的 Feature,但不會從頭到尾去建造,因為建造一個工具通常需要一個完整的前後端和專案經理團隊,這已經超乎一個 MLOps 所能及

當然這一切都是建構在 Infrastructure Team 以及 SRE Team,Infrastructure Team 我認為是基礎建設的組織,假設我今天決定要使用 Flink 來當我實時 Pipeline 的建設工具,他們就會負責架起這樣的系統,並起管理制個系統所需要的資源並且提供擴容或是縮榮的機制,而SRE Team 則是去監控變管理這個系統,實作或是引用一些工具讓這個系統可以常保在線上

換句話說,我認為 CICD 更專注於上線前而 DevOps 更專注於上線後,而 SRE 專注於執行的底層系統穩定, Infrastructure 在實踐執行系統所需要的功能,MLOPS 則涵蓋和這些團隊的溝通並銜接與 Machine Learning 有關的部分

以上就是我對一個機器學習團隊或見到的幾個角色想像的分工


上一篇
Day 28 The Whole Picture
下一篇
Day 30 Keep Learning MLOps
系列文
踏上 MLOps 之路:從 Applied Data Scientist 到 MLOps 的轉變與建構30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言